package com.yr.ryjk.redis;

import java.util.Map;

import com.yr.ryjk.common.Constant;

import redis.clients.jedis.Jedis;

/**
 * 封装对redis的存取数据
 * @author Rick
 * 
 */
public class JedisUtil {
	private static Jedis jedis = RedisFactory.getJedis();

	/**
	 * 存入手机号-验证码数据
	 * @param phone
	 * @param checkcode
	 */
	public static void putPhoneCheckcodeMap(String phone, String checkcode) {
		jedis.hset(Constant.redis_phone_checkcode_key, phone, checkcode);
	}
	
	/**
	 * 存入手机号-令牌数据
	 * @param phone
	 * @param token
	 */
	public static void putPhoneTokenMap(String phone, String token) {
		jedis.hset(Constant.redis_phone_token_key, phone, token);
	}

	/**
	 * 存入令牌-手机号数据
	 * @param token
	 * @param phone
	 */
	public static void putTokenPhoneMap(String token, String phone) {
		jedis.hset(Constant.redis_token_phone_key, token, phone);
	}
	
	/**
	 * 存入手机号-极光推送设备唯一key数据
	 * @param phone
	 * @param jpushKey
	 */
	public static void putPhoneJPushMap(String phone, String jpushKey) {
		String phoneOther=jedis.hget(Constant.redis_jpush_phone_key, jpushKey);
		if(phoneOther!=null){
			jedis.hdel(Constant.redis_phone_jpush_key, phoneOther);
		}
		jedis.hset(Constant.redis_phone_jpush_key, phone, jpushKey);
	}

	/**
	 * 存入pushKey-手机号的map
	 * @param jpushKey
	 * @param phone
	 */
	public static void putJPushPhoneMap(String jpushKey, String phone) {
		jedis.hset(Constant.redis_jpush_phone_key, jpushKey,phone);
	}
	
	/**
	 * 根据手机号获取验证码
	 * @param phone
	 * @return
	 */
	public static String getCheckcodeByPhone(String phone) {
		return jedis.hget(Constant.redis_phone_checkcode_key, phone);
	}
	
	/**
	 * 根据令牌获取手机号,确定用户
	 * @param token
	 * @return
	 */
	public static String getPhoneByToken(String token) {
		return jedis.hget(Constant.redis_token_phone_key, token);
	}

	/**
	 * 根据手机号获取令牌
	 * @param phone
	 * @return
	 */
	public static String getTokenByPhone(String phone) {
		return jedis.hget(Constant.redis_phone_token_key, phone);
	}
	
	/**
	 * 根据手机号获取极光推送设备唯一识别号
	 * @param phone
	 * @return
	 */
	public static String getJPushKeyByPhone(String phone) {
		return jedis.hget(Constant.redis_phone_jpush_key, phone);
	}
	
	/**
	 * 根据极光推送设备唯一识别号获取手机号
	 * @param pushKey
	 * @return
	 */
	public static String getPhoneByJPushKey(String pushKey) {
		return jedis.hget(Constant.redis_jpush_phone_key, pushKey);
	}
	
	/**
	 * 存入咨询倒计时数据
	 * @param consultId
	 */
	public static void putConsultTimerMap(String consultId) {
		jedis.hset(Constant.redis_consult_timer_key, consultId,System.currentTimeMillis()+"");
	}
	
	/**
	 * 根据咨询id获取咨询倒计时时间
	 * @param consultId
	 * @return
	 */
	public static String getTimerByConsultId(String consultId) {
		return jedis.hget(Constant.redis_consult_timer_key, consultId);
	}
	
	/**
	 * 根据咨询id,删除
	 * @param consultId
	 */
	public static void delTimeByConsultId(String consultId){
		jedis.hdel(Constant.redis_consult_timer_key, consultId);
	}
	
	/**
	 * 获取redis中所有咨询的倒计时map
	 * @return 
	 */
	public static Map<String, String> getConsultTimerMap(){
		return jedis.hgetAll(Constant.redis_consult_timer_key);
	}
}